@爆米花
2年前 提问
1个回答
为了实现文件的可靠存储HDFS做出了哪些设计
GQQQy
2年前
为了实现文件的可靠存储HDFS做出了如下设计:
冗余存储:在HDFS中大文件被存储为一系列的数据块,每个数据块被复制成若干个副本,存储在不同的数据节点上以保证系统的容错性。
错误恢复:每个数据节点都周期性地向名字节点发送心跳数据包,当网络出现故障或者数据节点出现故障时,心跳信息无法发出,名字节点由此判断故障出现,此时名字节点会标记最近没有心跳的数据节点宕机,并不再向它们转发任何新的I/O请求,当数据节点宕机导致数据块复制因子低于指定位时,名字节点会复制这些数据块。
集群重配平:当某个数据节点的剩余磁盘空间小于极限值时,HDFS自动将一部分数据从此数据节点移动到另一个节点,同样,当系统对某个文件的访问很大时,HDFS会动态增加该文件的复制数,以平衡集群的访问。
数据完整性检查:HDFS客户端从数据节点读取数据后,将对数据进行校验和检查。
元数据磁盘失效:为应对名字节点失效导致的系统故障,HDFS对名字节点的关键数据,如文件系统镜像和编辑日志进行了多份备份,以便在名字节点宕机时快速恢复到其他机器。